package com.wzs.easytobuy.service;

import com.wzs.easytobuy.exception.LoginException;
import com.wzs.easytobuy.model.User;

/**
 * @author miaomiao
 * @version 1.0.0
 * @Description 处理用户模块相关业务的接口
 * @createTime 2021-06-23- 09:01:00
 */
public interface IUserService {

    /**
     * 处理用户的登录业务
     *
     * @param username    用户名
     * @param passwordMD5 通过MD5加密后的密码
     * @return 返回查询到的用户信息, 用对象传递信息
     */
    User login(String username, String passwordMD5) throws LoginException;

    /**
     * 处理用户注册业务
     *
     * @param user 用User对象来接收前台传递的参数
     * @return 将数据库后台受影响的记录数返回到控制层
     */
    int register(User user);

    /**
     * 对用户注册模块用户名验证是否唯一
     *
     * @param username 用户名
     * @return 返回查询结果条数
     */
    int checkUserName(String username);

    /**
     * 对用户注册模块的邮箱进行唯一性验证
     *
     * @param email 邮箱
     * @return 返回查询结果条数
     */
    int checkEmail(String email);

    /**
     * 注册用户信息的同时添加地址信息
     * @param user 用户对象
     * @return 返回新增结果条数
     */
    int addAddress(User user);
}
